package com.zuipin.service;

import java.util.List;

import com.zuipin.entity.SysRole;
import com.zuipin.framework.result.Result;
import com.zuipin.util.Pagination;
import com.zuipin.vo.SysRolePermissionVo;

/**
 * 角色service
 * 
 * @ClassName: ISysRoleService
 * @Description: TODO
 * @author zhuangjiajian
 * @date 2017年3月27日 上午10:48:01
 */
public interface ISysRoleService {
	/**
	 * 查询角色
	 * @Title: findById
	 * @author zhuangjiajian
	 * @date 2017年09月147日 13:40:12
	 * @param id,
	 * @return
	 * @return SysRole
	 */
	public SysRole findById(Long id);
	
	public void insert(SysRole sysRole);
	
	/**
	 * 更新角色
	 * 
	 * @Title: update
	 * @author zhuangjiajian
	 * @date 2017年09月147日 13:40:12
	 * @param sysRole
	 * @return void
	 */
	public Result<SysRole> update(SysRole sysRole);
	
	/**
	 * 删除角色
	 * @Title: delete
	 * @author zhuangjiajian
	 * @date 2017年09月147日 13:40:12
	 * @param id,
	 * @return void
	 */
	public void delete(Long id);
	
	/**
	 * 搜索角色
	  *  @Title: seachSysRole
	  * @author zhuangjiajian
	  * @date 2017年09月147日 13:40:12
	  * @param sysRole
	  * @param page
	  * @return
	  * @return List<SysRole>
	 */
	public List<SysRole> seachSysRole(SysRole sysRole, Pagination page);
	
	/**
	 * 改变状态
	 * @date 2017-9-14 16:12:43
	 * @param status
	 */
	public int modifyStatus(Integer status);
	
	/**
	 * 查询角色下的权限列表信息
	 * @author zhuangjiajian
	 * @date 2017-9-14 17:51:13
	 * @param roleId
	 * @return
	 */
	public Result<List<SysRolePermissionVo>> getRolePermissionDetail(Long roleId);
	
	/**
	 * 插入角色
	 * 
	 * @Title: insert
	 * @author zhuangjiajian
	 * @date 2017年09月147日 13:40:12
	 * @param sysRole
	 * @return void
	 */
	public Result<SysRole> addSysRole(SysRole sysRole);
	
	public String findRoleIdsByUserId(Long userId);
}
